Skip to main content
Version: v4.6

project

$project#

Control the fields you want to include or not in the documents you pass to the next stage in the pipeline.

You can project with the following objectives:

  • Include only specific fields
  • Exclude specific fields
  • Create a new field that has a computed value

Note: If you exclude fields, you cannot also specify fields to include.

Syntax#

{ $project: { specification(s) } }

For more information, see the following specification examples:

ExampleResult
{ $project: { field1: 1 } }Only field1 and its value project to the next stage in the pipeline.
{ $project: { field1: 0 } }All fields except field1 project to the next stage in the pipeline.
{ $project: { newField: { $add: ["field1", "field2"} }Projects a newly created field, newField, with a computed value to the next stage in the pipeline.

Sample Request#

[    {        "$match": {            "temp": {                "$exists": true            }        }    },    {        "$project": {            "temp": 1,            "_ts": 1        }    },    {        "$sort": {            "_ts": 1        }    },    {        "$limit": 3    }]

Sample Response#

{    "_list": [        {            "temp": 368,            "_id": "645bca63f8b8a87c0f075ce9",            "_ts": "Wed May 10 22:16:26 IST 2023"        },        {            "temp": 871,            "_id": "645bca63f8b8a87c0f075cea",            "_ts": "Wed May 10 22:16:26 IST 2023"        },        {            "temp": 777,            "_id": "645bca63f8b8a87c0f075ceb",            "_ts": "Wed May 10 22:16:27 IST 2023"        }    ]}